package v1

import "github.com/gogf/gf/v2/frame/g"

// HasToManyReq 此处为一对多查询
type HasToManyReq struct {
	g.Meta `path:"/hasToMany" tags:"关系查询" method:"get" summary:"一对多查询"`
}
type HasToManyRes struct {
	Content []*HasToMany `json:"content"`
}

type HasToMany struct {
	g.Meta      `orm:"table:boyfriend"`
	BoyfriendId uint64 `json:"boyfriendId" dc:"男朋友表中主键id"`
	Name        string `json:"name"        dc:"男朋友名字"`
	Age         int    `json:"age"         dc:"年龄"`
	//orm:"with:girlfriend_id=boyfriendId" 这局话中,Girlfriend结构体,也就是girlfriend这张表中的关联girlfriend_id要在with后面,
	//注意注意这个girlfriend_id后面的girlfriend_id一定是以从表中的字段名字为准,而不是乱七八糟的驼峰命名为准...
	//等号后面是当前主表,也就是主结构体HasToHas中的主键id,同理也是以从表中的关联id字段名为准,而不是驼峰命名
	Girlfriend []*Girlfriends `json:"girlfriend" orm:"with:girlfriend_id=boyfriend_id"`
	//如果要加条件就这么写,注意条件后面那些空格,以及逗号后面的空格都必须要有的.
	//Girlfriend []*Girlfriends `json:"girlfriend" orm:"with:girlfriend_id=boyfriend_id, where:age>20 and age<30, order:id desc"`
}

type Girlfriends struct {
	g.Meta       `orm:"table:girlfriend"`
	Id           uint64 `json:"id"          dc:"女朋友表中主键id"`
	Name         string `json:"name"        dc:"女朋友名字"`
	Age          int    `json:"age"         dc:"年龄"`
	GirlfriendId uint64 `json:"girlfriendId" dc:"关联男朋友表"`
}
